This invention relates in general to compression of digital visual images, and more particularly, to a technique for sharing encoded reference data across multiple encoders being employed in parallel to encode each frame of a sequence of video frames.
The emergence of various digital video technologies in industries such as broadcast television, communications networks, consumer electronics, and multimedia computers continues to increase at a remarkable rate. This widespread use of digital video applications is motivated by the fact that signal processing, editing and data transfer of digital information is much easier compared with processing of analog representations. But as importantly, digital video owes its popularity to the several standards that have been created for digital video compression in recent years.
Digital video compression solutions are arguably the most important component of any digital video platform. Since digital video is known to contain an enormous amount of information in uncompressed format, its manipulation, storage, and transmission can be very time consuming and expensive, if not impossible. As a result, digital video compression techniques have been devised to reduce the overwhelming volume of data while preserving the perceptual quality of its content. A compatible video decompression scheme is then used to uncompress the data for playback.
The MPEG-2 international standard formed by the Moving Pictures and Expert Group, and described in ISO/IEC 13818-2, xe2x80x9cInformation Technologyxe2x80x94Generic Coding of Moving Pictures and Associated Audio Information: Video 1996,xe2x80x9d which is hereby incorporated herein by reference in its entirety, is intended to standardize compression for the industries noted above. The ISO MPEG-2 standard specifies the syntax of the encoded bitstream and semantics of the decoding process. The choice of coding parameters and tradeoffs in performance versus complexity, however, are left to the encoder developer.
Conventionally, an MPEG-2 encoder receives a sequence of frames or pictures from a video source. The sequence of frames may be progressive or interlaced. Illustratively, a progressive sequence may comprise 30 frames per second. In the case of an interlaced sequence, each frame comprises two fields. A top field comprises even numbered rows and a bottom field odd numbered rows. Thus, in the case of an interlaced sequence, there may be 60 fields per second. These output frame rates do not change even when the size of the input picture is much larger than an average picture, such as in the case of high definition television, or when a large motion search size is used, which requires more time to process. This invention seeks to enhance encoding of digital video signals under such conditions.
Briefly summarized, the invention comprises in one aspect a method for processing a sequence of video frames. The method includes: employing a first encoder to encode a first area of a frame of the sequence of video frames and a second encoder to encode a second area of the frame, wherein the first area and the second area comprise adjoining areas within the frame; and making reference data of the first encoder available to the second encoder, the reference data arising from encoding the first area of the frame and being made available to the second encoder for use in encoding the second area of a subsequent frame of the sequence of video frames to facilitate avoiding appearance of a seam between the adjoining first and second areas of the subsequent frame of the sequence of video frames due to parallel encoding thereof by the first encoder and the second encoder.
In another aspect, the invention comprises a method for processing a sequence of video frames which includes: employing multiple encoders to encode multiple areas of a frame of the sequence of video frames, each area of the frame having at least one adjoining area within the frame so that each encoder has at least one adjoining encoder; and making reference data available from each encoder to an adjoining encoder for use in encoding a subsequent frame of the sequence of video frames to facilitate avoiding appearance of seams between adjoining areas of the subsequent frame of the sequence of video frames due to separate encoding thereof by the multiple encoders.
In still another aspect, the invention comprises an encode system for processing a sequence of video frames which includes a first encoder for encoding a first area of a frame of the sequence of video frames, and a second encoder for encoding a second area of the frame of the sequence of video frames, wherein the first area and the second area are adjoining areas within the frame. The first encoder is adapted to make available to the second encoder reference data arising from encoding of the first area of the frame. The reference data is employed by the second encoder in encoding the second area of a subsequent frame of the sequence of frames to facilitate avoiding appearance of a seam between the adjoining first and second areas of the subsequent frame due to the separate encoding thereof by the first encoder and the second encoder.
In a further aspect, the invention comprises an encode system for processing a sequence of video frames which includes a video divider for dividing a frame of the sequence of frames into multiple active areas, and multiple encoders coupled in parallel to encode the multiple active areas of the frame. Each active area of the frame has at least one adjoining active area within the frame so that each encoder has at least one adjoining encoder. The multiple encoders are adapted to make reference data available from each encoder to its at least one adjoining encoder for use in encoding a subsequent frame of the sequence of video frames to facilitate avoiding appearance of seams between adjoining areas of the subsequent frame due to separate encoding thereof by the multiple encoders.
In a yet further aspect, articles of manufacture comprising computer program products implementing the above-summarized methods and systems are described and claimed herein.
To restate, presented herein is a technique for sharing encoded reference data across multiple encoders employed in parallel to encode each frame of a sequence of video frames such as a high definition television picture, digital video disc picture, etc. The shared reference data is used by the receiving encoder to create a larger reconstruct or reference area for motion estimation processing of a subsequent picture. By exchanging or sharing reference data, picture quality along adjoining edges of active areas of the picture is improved since better motion vector matches can be found by searching on both sides of the common boundary. The method for exchanging reference data described herein can be extended to occur on any side of an active area, i.e., top, bottom, left or right, and can include multiple exchanges for a given picture. The multiple exchanges can occur either in sequence or in parallel and can therefore include multiple layout schemes for more than two encoders used in parallel to encode a picture.